package tp.tecnicasdisenio.model;


public interface ReglaInterface {

	/**
	 * Indica si el formato del titulo del mail cumple con la regla. 
	 * 
	 * @param mail
	 * @return
	 */
	public boolean aplica(MailInterface mail);
	
	/**
	 * Procesa las acciones asociadas a la regla sobre el mail.
	 * 
	 * Se provee un auto-respondedor para responder el mensaje en caso de que 
	 * sea necesario. 
	 * 
	 * @param mail
	 */
	public void aplicarAccionesSobre(MailInterface mail, AutoRespondedorInterface autoRespondedor);
	
	/**
	 * Agrega una nueva accion a aplicar sobre la regla
	 */
	public void nuevaAccion(AccionInterface accion);
	
	public void siguiente(ReglaInterface regla);
}
